Conversation
TimWolla
left a comment
There was a problem hiding this comment.
Besides the remarks, I'm more generally concerned about this. As you can see for the extensions where you commented the build failures, the bundled extensions are not tested outside of PHP’s build system and it's probably easy to accidentally choose some different configure options that result in subtly broken extensions, especially when considering that Linux distributions often ship with patched PHP versions, where PIE is going to miss out on those patches. The bundled extensions really should just be installed by the respective package manager.
Yes, my plan here is to add an integration test that does a test
This was my expectation too, but we have had several requests, I think the most common would be PDO*, bcmath, mbstring. |
Just building extensions is not a sufficient guarantee that they'll work correctly. As an example MySQLnd relies on OpenSSL for the TLS support and trying to build MySQLnd in a standalone fashion is not unlikely to result in a version without TLS support, even when OpenSSL is loaded in PHP as a shared module. |
ecfe93a to
255855a
Compare
To expand on this a little more: It would also make it easy to accidentally run subtly different patch versions of the bundled libraries, leading to confusion when reporting issues. Consider the following:
Now a user finds a bug in the MySQL integration and reports it as “I'm using PHP 8.2.28” and folks are left confused, because the bug had already been fixed in MySQLnd with PHP 8.2.27, but the user didn't install the updated mysqlnd with PIE. Over time the versions will diverge further when half of the stuff was installed with the package manager and the other half with PIE. Or possibly some extension is installed with PIE and then later the corresponding package is installed with the package manager, leading to both the package manager and the PIE version being installed and fighting with each other. Instead it would probably make sense to report a helpful message when running
or
or similar. |
This constant can be handy for tools like PIE to determine the origin of a PHP binary to provide better output / diagnostics. see php/pie#275 see php#18168
This constant can be handy for tools like PIE to determine the origin of a PHP binary to provide better output / diagnostics. see php/pie#275 see #18168
453c90f to
2e0ac3f
Compare
# Conflicts: # src/Platform/TargetPhp/PhpBinaryPath.php
2e0ac3f to
a955ffd
Compare
469dffa to
c8587e1
Compare
c8587e1 to
ad6a063
Compare
ad6a063 to
b4e35dd
Compare
Fixes #133